// type BarType = (num1: number) => number
// 调用签名
interface IBar {
  name: string;
  age: number;
  // 这个对象函数也可以调用: （参数列表）: 返回值
  (num1: number): number;
}

const bar: IBar = (num1: number) => {
  return 123;
};

// 函数的调用签名（从对象的角度看待这个函数，也可以有其他属性）
bar.name = "zs";
bar.age = 12;
bar(12);

/** 开发中如何选择
 *  1. 如果只是描述函数类型本身（函数可以被调用），使用函数类型表达式（Function Type Expression）
 *  2. 如果在描述函数只为对象可以被调用，同时拥有其他属性，使用函数调用签名（Call Signature）
 */

export {};
